package cn.xiuxius.embedded.util;

import cn.xiuxius.embedded.EasySTC;

import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JarPathUtil {
    public static String getJarHome() {
        try {
            URI uri = EasySTC.class.getProtectionDomain().getCodeSource().getLocation().toURI();

            // 处理 jar:file:/D:/... 路径，去掉前缀
            if ("jar".equals(uri.getScheme())) {
                String s = uri.getSchemeSpecificPart();
                if (s.startsWith("file:")) {
                    uri = new URI(s.substring(0, s.indexOf("!"))); // 保留 file:/... 这一部分
                }
            }
            // 此时 uri 为 file:/D:/mycmd/easystc/easy-stc-1.0.jar
            Path jarPath = Paths.get(uri).toAbsolutePath();
            Path dirPath = jarPath.getParent(); // 获取目录部分
            return Files.exists(dirPath) ? dirPath.toString() : null;
        } catch (Exception e) {
            return null;
        }

    }
}
